package com.wl.zlmanage.mapper;


import com.wl.zlmanage.bean.ApplyInfo;
import com.wl.zlmanage.bean.ApplySignInfo;
import com.wl.zlmanage.bean.ApprovalInfo;
import com.wl.zlmanage.bean.ExpendInfo;
import com.wl.zlmanage.bean.User;
import com.wl.zlmanage.bean.ZlSignInfo;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

@Repository
public interface ApplyMapper {

    List<ApplyInfo> getApply(@Param("signId") Integer signId,
        @Param("page") int page,
        @Param("limit") int limit);

    Integer getApplyCount(@Param("signId") Integer signId,
        @Param("page") int page,
        @Param("limit") int limit);

    void addApplyInfo(ApplyInfo applyInfo);

    Integer deleteApply(@Param("applyId") Integer applyId);

    Double getAllApply(@Param("signId") Integer signId);

    List<ApplySignInfo> getApplySignList(@Param("page") int page,
        @Param("limit") int limit, @Param("search") String search,
        @Param("approvalState") Integer approvalState, @Param("user") User user,
        @Param("applyTypeId") Integer applyTypeId);

    Integer getApplySignListCount(@Param("search") String search,
        @Param("approvalState") Integer approvalState, @Param("user") User user,
        @Param("applyTypeId") Integer applyTypeId);

    ApplySignInfo getApplySign(@Param("applySignId") Integer applySignId);

    Integer askApplyApproval(@Param("applyId") Integer applyId,
        @Param("applyState") Integer applyState);

    Integer updateApplyTime(@Param("applyId") Integer applyId,
        @Param("applyTime") String applyTime);

    Integer saveApplyApprovalInfo(@Param("approvalInfo") ApprovalInfo approvalInfo);

    List<ApprovalInfo> getApplyApprovalBySignId(@Param("applySignId") Integer applySignId);

    List<ApplySignInfo> getExpendApprovalList(@Param("page") int page,
        @Param("limit") int limit, @Param("search") String search, @Param("user") User user,@Param("signType") Integer signType);

    Integer getExpendApprovalListCount(@Param("search") String search, @Param("user") User user,@Param("signType") Integer signType);

    ApplySignInfo getExpendApprovalById(@Param("applySignId") Integer applySignId);

    List<ApplySignInfo> getExpendApprovalListNew(@Param("page") int page,
        @Param("limit") int limit, @Param("search") String search, @Param("user") User user,@Param("signType") Integer signType);

    Integer getExpendApprovalListNewCount(@Param("search") String search, @Param("user") User user,@Param("signType") Integer signType);

    Integer askExpendApplyApproval(@Param("applyId") Integer applyId,
        @Param("applyState") Integer applyState);

    Integer updateExpendTime(@Param("applyId") Integer applyId,
        @Param("expendTime") String expendTime);

    Integer askExpendApplyApprovalNew(@Param("applyId") Integer applyId,
        @Param("applyState") Integer applyState);

    Integer updateExpendTimeNew(@Param("applyId") Integer applyId,
        @Param("expendTime") String expendTime);

    Integer saveExpendApprovalInfo(@Param("approvalInfo") ApprovalInfo approvalInfo);

    Integer saveExpendApprovalInfoNew(@Param("approvalInfo") ApprovalInfo approvalInfo);

    List<ApprovalInfo> getExpendApprovalBySignId(@Param("applySignId") Integer applySignId);

    List<ApprovalInfo> getExpendApprovalBySignIdNew(@Param("applySignId") Integer applySignId);

    Integer updateExpendMark(@Param("applySignId") Integer applySignId,@Param("editMark") String editMark,@Param("editPrice") String editPrice);

    Integer updateExpendMarkNew(@Param("applySignId") Integer applySignId,@Param("editMark") String editMark,@Param("editPrice") String editPrice);

}
